1. Field of the Invention
The invention relates to the field of production printing systems and, in particular, to partitioning of sheetside bitmaps in a print controller before the sheetside bitmaps are sent to printhead controllers.
2. Statement of the Problem
A production printing system is a high-speed printer used for volume printing, such as 100 pages per minute or more. Production printing systems generally include a localized print controller that controls the overall operation of the printing system including, for example, host interfacing, interpretation or rendering, and lower level process control or interface features of print engines of the printing system. Host interaction may include appropriate adapters for coupling the printing system to one or more host systems that transmit print jobs to the printing system. The print jobs are generally encoded in the form of a page description language such as PostScript (PS), PCL, IPDS, etc.
In whatever form the print job may be encoded or formatted, the print controller within the printing system interprets the received information to generate sheetside bitmaps of the print job. The sheetside bitmaps represent the image to be printed on a side of a sheet of paper. Each sheetside bitmap generally comprises a 2-dimensional array of picture elements (“pixels”) that represent a corresponding formatted sheet of the print job. Each pixel may represent an encoded color value in accordance with the requirements of the particular print job encoding and the capabilities of the printing system on which the print job is to be printed.
The print controller stores or buffers the sheetside bitmaps in accordance with storage capabilities of the particular architecture of a particular print controller. The print controller then forwards the sheetside bitmaps to one or more print engines (sometimes also referred to as an “imaging engine” or as a “marking engine”). The print engines include one or more printhead controllers that control one or more printhead arrays. Each printhead controller is associated with a printhead array so that the printhead controller is the system controlling how the printhead array discharges ink onto a medium. In a typical printing system, there is one printhead controller associated with a single printhead array.
Presently, when the print controller receives a print job and generates sheetside bitmaps, each pixel in the sheetside bitmaps is represented by one or more bits per pixel. Pixels of 8 bits or more can be used to represent grayscale or index color. Thus, in many production printing systems, the print controller sends full 8-bit sheetside bitmaps to each of the printhead controllers in the print engine. A full sheetside bitmap includes an entire set of pixels for an image.
After receiving an 8-bit sheetside bitmap, the printhead controller performs a halftoning or screening process on the 8-bit sheetside bitmap, which generates a 2-bit sheetside bitmap. The printhead controller then processes a bitmap mask assigned to that controller to determine which pixels in the 2-bit sheetside bitmap to print through its associated printhead array. For example, in a black and white printer, a printhead controller may determine that its associated printhead array is to print every other line of the 2-bit sheetside bitmap, or every other pixel of the 2-bit sheetside bitmap.
One problem with present production printing systems is that the interface between the print controller and the printhead controllers limits the printing speed of the printing system. The interface used between the print controller and the printhead controllers is typically an IEEE 1394 interface, also known as a FireWire® interface. An IEEE 1394 interface has a maximum capacity of about 40 Mbytes/second. In order to transmit an 8-bit sheetside bitmap from the print controller to one of the printhead controllers, a transmission rate of about 215 Mbytes/second is needed on average so that the printhead controllers are not “waiting” on data from the print controller. The print controller may use a compression scheme, such as PackBits, to compress the 8-bit sheetside bitmap before transmitting the bitmap to the printhead controllers. However, even if the sheetside bitmap is compressed, the interface between the print controller and the printhead controllers is not fast enough to transmit the compressed bitmap to the printhead controllers. As a result, the printhead controllers are not being utilized to their full processing capacity, and the printing system is not operating at its maximum printing speed.